package com.schedule.entity;

import lombok.*;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;

@Builder
@NoArgsConstructor  // ✅ 必须：无参构造函数（MyBatis、Spring 需要）
@AllArgsConstructor // ✅ 可选：全参构造（配合 builder 使用）
@Data

public class LoginUser implements Serializable { // ✅ 推荐实现序列化

    /**JVM 就认为“这是同一个类的升级版”。
     反序列化时：
     旧对象没有 email → 新对象的 email 字段为 null
     不会抛异常，程序正常运行 ✅***/
    private static final long serialVersionUID = 1L;

    private Integer id; // ✅ 改为包装类型 Integer，避免 null 问题

    private String username; // 用户名

    private String password; // 密码

    private String salt; // 盐加密

    private String nickname; // 昵称

    private String email; // 邮箱

    private Integer role; // 身份，改为 Integer 更安全

    private LocalDateTime createTime; // 创建时间

    private LocalDateTime updateTime; // 修改时间
}
